﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using WindowsFormApplication.FormBase;
using WindowsFormsView;
using WindowsFormsPresenter.Unit;

namespace WindowsFormApplication.FormCategory
{
    public partial class frmUnitDetail : frmBaseCategoryDetail, IUnitView
    {
        private UnitPresenter _unitPresenter;

        public string UnitID { get; set; }

        public string UnitCode
        {
            get { return txtUnitCode.Text; }
            set { txtUnitCode.Text = value; }
        }

        public string UnitName
        {
            get { return txtUnitName.Text; }
            set { txtUnitName.Text = value; }
        }

        public string RestaurantID { get; set; }

        public string Description
        {
            get { return txtDescription.Text; }
            set { txtDescription.Text = value; }
        }

        public bool IsActive
        {
            get { return chkIsActive.Checked; }
            set { chkIsActive.CheckedValue = value; }
        }

        protected override void InitData()
        {

            if (KeyValue != null)
                _unitPresenter.Display(KeyValue);
        }

        protected override bool ValidData()
        {
            if (string.IsNullOrEmpty(UnitCode))
            {
                ShowMessageBox("Bạn chưa nhập mã đơn vị tính !", "Thông báo thay đổi dữ liệu !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtUnitCode.Focus();
                return false;
            }
            if (string.IsNullOrEmpty(UnitName))
            {
                ShowMessageBox("Bạn chưa nhập tên đơn vị tính !", "Thông báo thay đổi dữ liệu !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtUnitName.Focus();
                return false;
            }
            return true;
        }

        protected override bool SaveData()
        {
            try
            {
                if (eActionMode == ActionMode.AddNew)
                {
                    _unitPresenter.Save();
                    ShowMessageBox("Thêm mới dữ liệu thành công !", "Thông báo thay đổi dữ liệu !", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    _unitPresenter.Save();
                    ShowMessageBox("Sửa dữ liệu thành công !", "Thông báo thay đổi dữ liệu !", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            catch (ApplicationException ex)
            {
                ShowMessageBox(ex.Message, "Thông báo thay đổi dữ liệu !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            return true;
        }

        public frmUnitDetail()
        {
            InitializeComponent();

            _unitPresenter = new UnitPresenter(this);
        }
    }
}
